#ifndef _HISI_DEC_SEND_STREAM_H_
#define _HISI_DEC_SEND_STREAM_H_

#ifdef __cplusplus
    extern "C" {
#endif


#define DEC_SEND_STREAM_IN_ES_NAME    "in_es"
#define DEC_SEND_STREAM_OUT_PTS_NAME  "out_pts"


typedef enum 
{
    OUT_PTS = 0,
}hisi_dec_tube_id;


typedef struct HISI_DEC_SEND_STREAM_STATIC_PARAMS
{
    const char *task_name;
    uint32_t u32Chn;            /**< decoder channel, max 9?*/
}hisi_dec_static_params;


typedef struct HISI_DEC_SEND_STREAM_DYNAMIC_PARAMS
{
    int ctrl;
    int stream_width;     /**< read only*/
    int stream_height;    /**< read only*/
}hisi_dec_dynamic_params;

typedef enum
{
    HISI_DEC_CTRL = 0,
    HISI_DEC_STREAM_WIDTH,
    HISI_DEC_STREAM_HEIGHT,
    HISI_DEC_ID_DEFS_NUMS
}hisi_dec_id_refs;

extern const hisi_dec_static_params  glb_hisi_dec_static_params_default;
extern const hisi_dec_dynamic_params glb_hisi_dec_dynamic_params_default;

typedef void *hisi_dec_handle;

hisi_dec_handle hisi_dec_create(hisi_dec_static_params *static_params,
                                  hisi_dec_dynamic_params *dynamic_params);

#ifdef __cplusplus
    }
#endif

#endif
